1. Field of the Invention
Generally, the invention relates to increasing the storage capacity of a RAID (Redundant Array of Independent Disks) storage system. More specifically, the invention relates to transferring data from a RAID storage volume to one or more disk drives of increased storage capacity while maintaining typical RAID storage operations.
2. Discussion of the Related Art
Storage systems typically incorporate local storage controller features within the storage system and a plurality of storage devices such as disk drives for storing significant volumes of user data. User data is generally communicated from attached host systems (e.g., host computers) through read and write I/O requests processed by the storage controller. The requests record (write) or retrieve (read) data on the storage devices of the storage subsystem. Frequently, the storage devices in such storage subsystems are magnetic disk drives. A local disk controller is typically incorporated within each such disk drive and is adapted to control low level operations of the disk drive itself—operations such as controllably rotating the magnetic storage medium, controllably actuating control mechanisms to position a read/write head assembly and read/write channel electronics to record information on the disk drive storage medium or to retrieve information from the magnetic storage medium.
In many storage applications, reliability of the stored data is critical. Once the data is communicated from a host system, the host system and applications may rely on the storage subsystem to properly and persistently record the supplied data on the magnetic storage media of the disk drive. Numerous techniques are known in the art to assure such reliability. One example of such includes RAID storage systems.
In RAID storage systems, stored data is combined with redundancy information to permit continued operation of the system despite failure of any single disk drive. Generally, RAID storage systems combine two or more physical disk drives into a single logical unit (e.g., a RAID storage volume) by using either special hardware or software. Hardware solutions are often designed to present the disk drives of the logical unit to the host computer as a single disk drive in a manner that is transparent to the operating system of a host computer. Software solutions, on the other hand, are typically implemented in the operating system of the host computer itself, and again would present the RAID disk drives as a single disk drive to the host computer.
Various RAID levels exist and generally employ one or more of three key concepts: “mirroring”—the copying of data to more than one disk drive; “striping”—the splitting of data across more than one disk drive; and “error correction”—the storage of redundant data to detect data errors and correct them via the redundant data. Different RAID levels use one or more of these techniques, depending on the system requirements. For example, in RAID “level 1” storage management, data is mirrored. In this regard, a disk drive has its data duplicated on another disk drive via a RAID controller (i.e., configured as either hardware or software). If either disk drive fails, the other disk drive continues to function as a single disk drive until the failed disk drive is replaced. RAID level 1 is fairly popular among lower storage capacity organizations that still require some degree of fault tolerance (e.g., small offices).
A problem exists when RAID level 1 users require additional storage capacity but do not wish to upgrade to an “enterprise-type” storage system solution. For example, a relatively small office may increase its business activities and therefore require more storage capacity. However, the redundancy offered by the RAID level 1 storage system may still be all that is required to ensure that data can be recovered in case of failure. Currently, in order to expand the storage capacity of a RAID level 1 storage volume, a new storage volume is created using separate disk drives and the data is manually copied from the existing storage volume to the new storage volume. To prevent data corruption, the existing storage volume is generally removed from storage operations (i.e., “taken off-line”). Accordingly, write operations from the host computer(s) are prevented from changing existing data until it is transferred (i.e., “backed up”) to the new larger capacity storage volume. Upon completion of the data transfer to the new storage volume, the user gains increased storage capacity and typical storage operations (e.g., read and write operations) to the new storage volume resume. However, the downtime associated with the data backup to the new storage volume may be troublesome, particularly to organizations requiring full-time storage operations.
It is evident from the above discussions that there is a need for expanding storage volume capacity while maintaining storage operations, particularly among storage volumes of the same RAID level.